all: genesis.rom genesis_fisico.rom

clean: 
	rm *.rom
	rm *.bin
	rm *~

empty8k.bin:
	dd if=/dev/zero of=empty8k.bin bs=1k count=8

genesis.rom: main.c main_vars.o movement.c behavior.c main.h engine.h constants.h sprdefs.h structs.h page2.rom levels_1.rom levels_2.rom sprites.rom menu.rom player.rom music1.rom music2.rom music3.rom music4.rom screens1.rom screens2.rom screens3.rom screens4.rom empty8k.bin 
	zcc +msxmegarom -vn -O3 -c movement.c -m
	zcc +msxmegarom -vn -O3 -c behavior.c -m
	zcc +msxmegarom -vn -O3 -m main.c main_vars.o movement.o behavior.o -o main1.rom 
	fill8k main1.rom main.rom
	cat main.rom page2.rom levels_1.rom levels_2.rom sprites.rom menu.rom player.rom music1.rom music2.rom music3.rom music4.rom screens1.rom screens2.rom screens3.rom screens4.rom empty8k.bin  > genesis.rom

genesis_fisico.rom: main.c main_vars.o movement.c behavior.c main.h engine.h constants.h sprdefs.h structs.h page2.rom levels_1.rom levels_2.rom sprites.rom menu_2psg.rom player_2psg.rom music1_2psg.rom music2_2psg.rom music3_2psg.rom music4_2psg.rom screens1.rom screens2.rom screens3.rom screens4.rom empty8k.bin 
	zcc +msxmegarom -vn -O3 -c -DDUAL_PSG movement.c -m
	zcc +msxmegarom -vn -O3 -c -DDUAL_PSG behavior.c -m	
	zcc +msxmegarom -vn -O3 -m -DDUAL_PSG main.c main_vars.o movement.o behavior.o -o main1.rom 
	fill8k main1.rom main.rom
	cat main.rom page2.rom levels_1.rom levels_2.rom sprites.rom menu_2psg.rom player_2psg.rom music1_2psg.rom music2_2psg.rom music3_2psg.rom music4_2psg.rom screens1.rom screens2.rom screens3.rom screens4.rom empty8k.bin  > genesis_fisico.rom

page2.rom: engine.rom additional.rom
	cat engine.rom additional.rom > page2.rom

main_vars.o: main_vars.c	
	zcc +msxmegarom -vn -c main_vars.c -m

engine.rom: engine.asm engine-variables.asm input.asm interrupt.asm vdp.asm memory.asm create_shifted_tables.asm drawmap.asm drawsprite.asm print.asm msx2.asm
	pasmo engine.asm engine.bin engine.sym
	fill6k engine.bin engine.rom

additional.rom: additional.asm maindefs.asm
	pasmo additional.asm additional.bin additional.sym
	fill2k additional.bin additional.rom

levels_1.rom: levels_1.asm level1.map level2.map level3.map level4.map level1_enemies.asm level2_enemies.asm level3_enemies.asm level4_enemies.asm
	pasmo levels_1.asm levels_1.bin levels_1.sym
	fill8k levels_1.bin levels_1.rom

levels_2.rom: levels_2.asm level5.map level6.map level7.map level5_enemies.asm level6_enemies.asm level7_enemies.asm
	pasmo levels_2.asm levels_2.bin levels_2.sym
	fill8k levels_2.bin levels_2.rom

sprites.rom: sprites.asm
	pasmo sprites.asm sprites.bin sprites.sym
	fill8k sprites.bin sprites.rom

genesis_title.sc1.bin: genesis_title.sc1
	apack genesis_title.sc1 genesis_title.sc1.bin

genesis_title.sc2.bin: genesis_title.sc2
	apack genesis_title.sc2 genesis_title.sc2.bin

credits_bkg.sc1.bin:  credits_bkg.sc1
	apack  credits_bkg.sc1 credits_bkg.sc1.bin
credits_bkg.sc2.bin:  credits_bkg.sc2
	apack  credits_bkg.sc2 credits_bkg.sc2.bin

title_hiscore.sc1.bin:  title_hiscore.sc1
	apack  title_hiscore.sc1 title_hiscore.sc1.bin
title_hiscore.sc2.bin:  title_hiscore.sc2
	apack  title_hiscore.sc2 title_hiscore.sc2.bin

gameover.sc1.bin:  gameover.sc1
	apack  gameover.sc1 gameover.sc1.bin
gameover.sc2.bin:  gameover.sc2
	apack  gameover.sc2 gameover.sc2.bin


navepiezas.sc1.bin:  navepiezas.sc1
	apack  navepiezas.sc1 navepiezas.sc1.bin
navepiezas.sc2.bin:  navepiezas.sc2
	apack  navepiezas.sc2 navepiezas.sc2.bin

happyend.sc1.bin:  happyend.sc1
	apack  happyend.sc1 happyend.sc1.bin
happyend.sc2.bin:  happyend.sc2
	apack  happyend.sc2 happyend.sc2.bin

happyend2.sc1.bin:  happyend2.sc1
	apack  happyend2.sc1 happyend2.sc1.bin
happyend2.sc2.bin:  happyend2.sc2
	apack  happyend2.sc2 happyend2.sc2.bin

bkg.bin: bkg.scr
	apack bkg.scr bkg.bin

menu.rom: menu.asm engine-functions.asm maindefs.asm 
	pasmo menu.asm menu.bin menu.sym
	fill8k menu.bin menu.rom

menu_2psg.rom: menu.asm engine-functions.asm maindefs.asm 
	pasmo --equ DUAL_PSG menu.asm menu_2psg.bin menu_2psg.sym
	fill8k menu_2psg.bin menu_2psg.rom

screens1.rom: screens1.asm genesis_title.sc1.bin genesis_title.sc2.bin credits_bkg.sc1.bin credits_bkg.sc2.bin title_hiscore.sc1.bin title_hiscore.sc2.bin bkg.bin
	pasmo screens1.asm screens1.bin screens1.sym
	fill8k screens1.bin screens1.rom

screens2.rom: screens2.asm gameover.sc1.bin gameover.sc2.bin 
	pasmo screens2.asm screens2.bin screens2.sym
	fill8k screens2.bin screens2.rom

screens3.rom: screens3.asm navepiezas.sc1.bin navepiezas.sc2.bin 
	pasmo screens3.asm screens3.bin screens3.sym
	fill8k screens3.bin screens3.rom

screens4.rom: screens4.asm happyend.sc1.bin happyend.sc2.bin happyend2.sc1.bin happyend2.sc2.bin
	pasmo screens4.asm screens4.bin screens4.sym
	fill8k screens4.bin screens4.rom

player.rom: ProPlay37a.asm genesis_sfx.asm move.asm behav.asm maindefs.asm
	pasmo ProPlay37a.asm player.bin wyzplayer.sym
	fill8k player.bin player.rom

player_2psg.rom: ProPlay37_2psg.asm genesis_sfx_2psg.asm move.asm behav.asm maindefs.asm
	pasmo ProPlay37_2psg.asm player_2psg.bin player_2psg.sym
	fill8k player_2psg.bin player_2psg.rom

music1.rom: music1.asm genesis_alice.mus genesis_gangway.mus genesis_homage.mus genesis_microint.mus
	pasmo music1.asm music1.bin music1.sym
	fill8k music1.bin music1.rom

music2.rom: music2.asm genesis_compote.mus Genesis_equinox_v2.mus genesis_fin.mus genesis_hoc.mus
	pasmo music2.asm music2.bin music2.sym
	fill8k music2.bin music2.rom

music3.rom: music3.asm genesis_jeff2.mus genesis_line.mus genesis_town.mus
	pasmo music3.asm music3.bin music3.sym
	fill8k music3.bin music3.rom

music4.rom: music4.asm Genesis_warrior.mus genesis_words.mus parasol.mus
	pasmo music4.asm music4.bin music4.sym
	fill8k music4.bin music4.rom

music1_2psg.rom: music1_2psg.asm genesis_alice_2psg.mus genesis_gangway_2psg.mus genesis_homage_2psg.mus genesis_microint_2psg.mus
	pasmo music1_2psg.asm music1_2psg.bin music1_2psg.sym
	fill8k music1_2psg.bin music1_2psg.rom

music2_2psg.rom: music2_2psg.asm genesis_compote_2psg.mus genesis_equinox_v2_2psg.mus genesis_fin_2psg.mus genesis_hoc_2psg.mus
	pasmo music2_2psg.asm music2_2psg.bin music2_2psg.sym
	fill8k music2_2psg.bin music2_2psg.rom

music3_2psg.rom: music3_2psg.asm genesis_jeff2_2psg.mus genesis_line_2psg.mus genesis_town_2psg.mus
	pasmo music3_2psg.asm music3_2psg.bin music3_2psg.sym
	fill8k music3_2psg.bin music3_2psg.rom

music4_2psg.rom: music4_2psg.asm genesis_warrior_2psg.mus genesis_words_2psg.mus parasol_2psg.mus
	pasmo music4_2psg.asm music4_2psg.bin music4_2psg.sym
	fill8k music4_2psg.bin music4_2psg.rom

